/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servicos;
import java.util.List;


/**
 *
 * @author fernandogomespinto
 */
public abstract class EntityServices <T extends Object> {
    /**
     * Método abstrato para salvar um objeto remoto.
     * Utiliza o método save do DAO correspondente.
     *
     * @param obj Objeto remoto a ser salvo.
     * @throws Exception Caso ocorra algum erro.
     */
    public abstract void save( T obj ) throws Exception;
    /**
     * Método abstrato para atualiar um objeto remoto.
     * Utiliza o método update do DAO correspondente.
     *
     * @param obj Objeto remoto a ser atualizado.
     * @throws Exception Caso ocorra algum erro.
     */
    public abstract void update( T obj ) throws Exception;
    /**
     * Método abstrato para excluir um objeto remoto.
     * Utiliza o método delete do DAO correspondente.
     *
     * @param obj Objeto remoto a ser excluído.
     * @throws Exception Caso ocorra algum erro.
     */
    public abstract void delete( T obj ) throws Exception;
    /**
     * Método abstrato para obter todas as intâncias de uma determinada
     * entidade e serializá-las em uma lista.
     * Utiliza o método listAll do DAO correspondente.
     *
     * @return Uma lista de objetos.
     * @throws Exception Caso ocorra algum erro.
     */
    public abstract List<T> listAll() throws Exception;

    
}
